package leetcode_1_20;

import utils.ListNode;

public class removeNthFromEnd_19 {
    /**
     * 思路，得到长度之后
     * 在循环中利用两个链表拼接，忽略掉指定位置的节点
     * @param head
     * @param n
     * @return
     */
    public static ListNode removeNthFromEnd(ListNode head, int n) {
        int len = 0,index=1;
        ListNode t=head;      //进行计算的链表
         while(t != null){
             len++;
             t=t.next;
         }
        ListNode newListNode=new ListNode();
        ListNode root=newListNode;     //进行操作的链表
        while(head  !=  null){
            if(index==len + 1 - n){           //当找到这个需要移除的节点的下标
                root.next = head.next;
                break;
            }
            else {
               index++;
               root.next = head;
               root = root.next;
               head = head.next;
            }
        }
        return newListNode.next;
    }
}
